home *** CD-ROM | disk | FTP | other *** search
/ 9-Digit Zip Code Directory / 9-Digit Zip Code Directory (American Business Information) (ABIZIP-12).ISO / z4src.zip / R4REINDE.H < prev    next >
C/C++ Source or Header  |  1993-03-03  |  3KB  |  112 lines

  1. /* r4reindex.h   (c)Copyright Sequiter Software Inc., 1990-1993.  All rights reserved. */
  2.  
  3. typedef struct
  4. {
  5.    /* must be before n_keys  */
  6.    #ifdef S4CLIPPER
  7.       short    *block_index ;
  8.       char     *data;
  9.    #endif
  10.  
  11.    #ifdef S4FOX
  12.       B4STD_HEADER header ;
  13.    #else
  14.       short     n_keys ;
  15.    #endif
  16.  
  17.    #ifdef S4MDX
  18.       char      dummy[6] ;
  19.       char      info[2] ;
  20.    #endif
  21.  
  22.    #ifdef S4NDX
  23.       char      dummy[2] ;
  24.       char      info;
  25.    #endif
  26. } R4BLOCK_DATA ;
  27.  
  28. typedef struct  /* R4REINDEX  For 'i4reindex' */
  29. {
  30.    #ifndef N4OTHER
  31.       TAG4 S4PTR   *tag ;
  32.       INDEX4 S4PTR *index ;
  33.       int           n_tags ;
  34.    #endif
  35.  
  36.    #ifdef S4FOX
  37.       char      *cur_pos ;
  38.       B4NODE_HEADER node_hdr ;
  39.       int        n_blocks_used ;
  40.    #else
  41.       #ifdef S4CLIPPER
  42.          B4KEY_DATA *stranded ;
  43.          int     keys_half ;
  44.          int     lastblock_inc ;        /* How much to increment 'lastblock' by */
  45.          int     n_blocks_used ;
  46.       #else
  47.          int     lastblock_inc ;        /* How much to increment 'lastblock' by */
  48.          unsigned blocklen ;
  49.       #endif
  50.    #endif
  51.  
  52.    int           grouplen ;             /* Entire key length */
  53.    int           valuelen ;             /* Length of sorted portion of key */
  54.    int           keysmax ;
  55.    long          lastblock ;            /* The block last written to */
  56.    long          key_count ;
  57.  
  58.    SORT4         sort ;
  59.  
  60.    FILE4SEQ_WRITE     seqwrite ;
  61.    char S4PTR   *buffer ;      /* Buffer for 'seqwrite' and 'seqread' */
  62.    int           buffer_len ;
  63.  
  64.    R4BLOCK_DATA S4PTR *start_block ;
  65.    int           n_blocks ;
  66.    int           min_keysmax;  /* To calculate the number of blocks */
  67.  
  68.    DATA4 S4PTR  *data ;
  69.    CODE4 S4PTR  *code_base ;
  70. } R4REINDEX ;
  71.  
  72. #ifdef __cplusplus
  73.    extern "C" {
  74. #endif
  75.  
  76. void r4reindex_free( R4REINDEX S4PTR * ) ;
  77.  
  78. #ifdef N4OTHER
  79.    int r4reindex_tag_headers_calc( R4REINDEX S4PTR *, TAG4 S4PTR * ) ;
  80.    int r4reindex_supply_keys( R4REINDEX S4PTR *, TAG4 S4PTR * ) ;
  81.    int r4reindex_write_keys( R4REINDEX S4PTR *, TAG4 S4PTR * ) ;
  82.    int r4reindex_tag_headers_write( R4REINDEX S4PTR *, TAG4 S4PTR * ) ;
  83.    int r4reindex_init( R4REINDEX S4PTR *, TAG4 S4PTR * ) ;
  84. #else
  85.    int r4reindex_tag_headers_calc( R4REINDEX S4PTR * ) ;
  86.    int r4reindex_supply_keys( R4REINDEX S4PTR * ) ;
  87.    int r4reindex_write_keys( R4REINDEX S4PTR * ) ;
  88.    int r4reindex_tag_headers_write( R4REINDEX S4PTR * ) ;
  89.    int r4reindex_init( R4REINDEX S4PTR *, INDEX4 S4PTR * ) ;
  90. #endif
  91. int r4reindex_blocks_alloc( R4REINDEX S4PTR * ) ;
  92. TAG4 S4PTR *r4reindex_find_i_tag( R4REINDEX S4PTR *, int ) ;
  93.  
  94. /* Write key functions */
  95. #ifdef S4FOX
  96.    int r4reindex_add( R4REINDEX S4PTR *, long, char S4PTR *, char S4PTR *, int S4PTR * ) ;
  97.    int r4reindex_finish( R4REINDEX S4PTR *, char S4PTR * ) ;
  98.    int r4reindex_todisk( R4REINDEX S4PTR *, char S4PTR * ) ;
  99. #else
  100.    int r4reindex_add( R4REINDEX S4PTR *, long, char S4PTR * ) ;
  101.    int r4reindex_finish( R4REINDEX S4PTR * ) ;
  102.    #ifdef S4CLIPPER
  103.       int r4reindex_todisk( R4REINDEX S4PTR *, long, char S4PTR * ) ;
  104.    #else
  105.       int r4reindex_todisk( R4REINDEX S4PTR * ) ;
  106.    #endif
  107. #endif
  108.  
  109. #ifdef __cplusplus
  110.    }
  111. #endif
  112.